package cn.stylefeng.guns.modular.service;

import cn.stylefeng.guns.modular.entity.Frame;
import cn.stylefeng.guns.modular.entity.Frameitem;
import cn.stylefeng.guns.modular.mapper.FrameMapper;
import cn.stylefeng.guns.modular.mapper.FrameitemMapper;

import cn.stylefeng.guns.modular.model.FrameAnditemDto;
import cn.stylefeng.roses.core.util.ToolUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.Collection;

/**
 * @author third_e
 * @create 2019/12/11 0011-下午 1:12
 */
@Service
public class FrameitemService extends ServiceImpl<FrameitemMapper,Frameitem> {

    @Resource
    public FrameMapper frameMapper;

    /**
     * 添加框架项
     *
     * @param frameAnditemDto
     */
    @Transactional(rollbackFor = Exception.class)
    public void addFrameitem(FrameAnditemDto frameAnditemDto){

        Frameitem frameitem = new Frameitem();
        Frame frame =null;
        if (ToolUtil.isEmpty(frameAnditemDto.getFrameId())){
            //关联框架id
            frame = frameMapper.getByFrameName(frameAnditemDto.getFrameName());
            //存储框架id
            frameitem.setFrameId(frame.getFrameId());
        }else {
            frameitem.setFrameId(frameAnditemDto.getFrameId());
        }

        if(frameAnditemDto.getEndTime().length == frameAnditemDto.getStartTime().length){
            int itemlong = frameAnditemDto.getEndTime().length;
            for (int i =0;i<itemlong;i++){
                //保存框架项
                frameitem.setFrameitemId(null);

                frameitem.setStartTime(frameAnditemDto.getStartTime()[i]);
                frameitem.setEndTime(frameAnditemDto.getEndTime()[i]);
                frameitem.setRemark(frameAnditemDto.getRemark()[i]);
                frameitem.setSort(i);
                this.save(frameitem);
            }
        }
    }


    /**
     * 查询
     */

    public Collection<Frameitem> selectFramitem(Long frameId){

        Collection<Frameitem> frameitems = this.baseMapper.selectFrameitemByFrameId(frameId);

        return frameitems;
    }


    /**
     * 保存日程框架项
     */

    public void editAdd(FrameAnditemDto frameAnditemDto){

        System.out.println("\n\n\n\n\n========="+frameAnditemDto);
        this.deleteFrameitem(frameAnditemDto.getFrameId());
        this.addFrameitem(frameAnditemDto);

    }

    /**
     * 删除日程框架
     * @param frameId
     */
    public void deleteFrameitem(Long frameId){
        this.baseMapper.deleteFrameitem(frameId);
    }

//    public Collection<Frameitem> getFrameId(Long frameId ){
//
//        return null;
//    }
}
